package com.linln.modules.member.repository;

import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.transaction.annotation.Transactional;

import com.linln.modules.member.domain.MemberInfo;
import com.linln.modules.member.domain.MemberPayDayCount;
import com.linln.modules.system.domain.User;
import com.linln.modules.system.repository.BaseRepository;

/**
 * @author hct
 * @date 2019/09/12
 */
public interface MemberInfoRepository extends BaseRepository<MemberInfo, Long>  ,JpaSpecificationExecutor<MemberInfo> {
	  /**
     * 根据用户名查询用户数据
     * @param username 用户名
     * @return 用户数据
     */
    public MemberInfo findByNickname(String nickname);

    /**
     * 根据用户名查询用户数据
     * @param username 用户名
     * @return 用户数据
     */
    public MemberInfo findByMobile(String mobile);


    /**
     * 根据用户名查询用户数据
     * @param username 用户名
     * @return 用户数据
     */
    public MemberInfo findByOpenid(String openid);

    
    /**
     * 根据用户名查询用户数据,且排查指定ID的用户
     * @param username 用户名
     * @param id 排除的用户ID
     * @return 用户数据
     */
    public User findByNicknameAndIdNot(String nickname, Long id);
    
    @Transactional
	@Query(value="select count(*)  from memberinfo where area = ?1 ",nativeQuery = true)
	public Integer getCountByArea(String area);

    @Transactional
	@Query(value="select count(*)  from memberinfo where area = ?1 and to_days(create_date) = to_days(now()) ",nativeQuery = true)
	public Integer getCountByAreaAndToday(String area);


}